#define _CRT_SECURE_NO_WARNINGS


//喝汽水，1瓶汽水1元，2个空瓶可以换一瓶汽水，给20元，可以喝多少汽水
//#include <stdio.h>
//
//void soda_problem(int x);
//
//int main()
//{
//	int money = 0;
//	scanf("%d", &money);
//	soda_problem(money);
//	return 0;
//}
//
//void soda_problem(int x)
//{
//	int soda = 0;
//	if (x % 2 == 0)
//	{
//		soda = x / 2 + x;
//		printf("可以喝%d瓶汽水", soda);
//	}
//	else
//	{
//		soda = (x-1) / 2 + x - 1;
//		printf("可以喝%d瓶汽水", soda);
//	}
//}


//求出0～100000之间的所有“水仙花数”并输出。
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，如 : 153＝1 ^ 3＋5 ^ 3＋3 ^ 3，则153是一个“水仙花数”。
//#include <stdio.h>
//#include <math.h>
//
//void narcissus_number();
//
//int main()
//{
//	narcissus_number();
//	return 0;
//}
//
//void narcissus_number()
//{
//	int i = 0;
//	for (i = 0; i <= 100000; i++)
//	{
//		int a = 0;
//		int count = 0;
//		int sum = 0;
//		int x = 0;
//		x = i;
//		while (x)
//		{
//			a = x % 10;
//			count++;
//			x /= 10;
//		}
//		x = i;
//		while (x)
//		{
//			a = x % 10;
//			sum += pow(a, count);
//			x /= 10;
//		}
//		if (i == sum)
//		{
//			printf("%d是一个水仙花数\n", i);
//		}
//	}
//}
//


//打印菱形
//#include <stdio.h>
//
//
//int main()
//{
//	int a = 0;
//	int i = 0;
//	int j = 0;
//	int k = 0;
//	scanf("%d", &a);
//	for (i = 1; i <= (a + 1) / 2; i++)
//	{
//		k = 1;
//		for (j = 1; j <= i + a / 2; j++)
//		{
//			if (k <= (a + 1) / 2 - i)
//			{
//				printf(" ");
//				k++;
//			}
//			else
//			{
//				printf("*");
//			}
//		}
//		printf("\n");
//	}
//	for (i = 1; i <= a / 2; i++)
//	{
//		k = 1;
//		for (j = 1; j <= a - i; j++)
//		{
//			if (k <= i)
//			{
//				printf(" ");
//				k++;
//			}
//			else
//			{
//				printf("*");
//			}
//		}
//		printf("\n");
//	}
//	return 0;
//}


//计算求和
//#include <stdio.h>
//#include <math.h>
//
//
//int main()
//{
//	int x = 0;
//	int i = 0;
//	int a = 0;
//	int sum = 0;
//	int tmp = 0;
//	scanf("%d", &a);//输入一个数字
//	scanf("%d", &x);//输入前x项和
//	for (i = 0; i < x; i++)
//	{
//		tmp = tmp * 10 + a;
//		sum += tmp;
//	}
//	printf("%d", sum);
//}



//计算斐波那契数(非递归）
//#include <stdio.h>
//int main()
//{
//	int x = 0;
//	while (scanf("%d", &x) != EOF)
//	{
//		int a = 1;
//		int b = 1;
//		int c = 0;
//		if (x == 1)
//		{
//			printf("斐波那契数是%d", a);
//		}
//		while (x - 2)
//		{
//			c = b;
//			b = a + b;
//			a = c;
//			x--;
//		}
//		printf("斐波那契数是%d", b);
//	}
//	return 0;
//}

//递归
//#include <stdio.h>
//
//int fun(int x);
//
//int main()
//{
//	int x = 0;
//	int r = 0;
//	while (scanf("%d", &x) != EOF)
//	{
//		r = fun(x);
//		printf("斐波那契数是%d", r);
//	}
//	return 0;
//}
//
//int fun(int i)
//{
//	if (i == 1 || i == 2)
//		return 1;
//	else
//		return fun(i - 1) + fun(i - 2);
//}



//递归实现n的k次方
//#include <stdio.h>
//
//double pow(int x, int y);
//
//int main()
//{
//	int n = 0;
//	int k = 0;
//	double a = 0;
//	scanf("%d %d", &n, &k);//输入n，k表示次方
//	a = pow(n, k);
//	printf("%lf", a);
//	return 0;
//}
//
//double pow(int x,int y)
//{
//	if (y == 0)
//		return 1;
//	else if (y > 0)
//		return x * pow(x, --y);
//	else
//		return 1.0 / pow(x, -y);
//}


//递归方式实现打印一个整数的每一位
//#include <stdio.h>
//
//void Print(int x);
//
//int main()
//{
//	int i = 0;
//	scanf("%d", &i);
//	Print(i);
//	return 0;
//}
//
//void Print(int x)
//{
//	if (x > 0)
//	{
//		printf("%d\n", x % 10);
//		return Print(x / 10);
//	}
//	else
//		return 1;
//}


//写一个递归函数DigitSum(n)，输入一个非负整数，返回组成它的数字之和
//#include <stdio.h>
//
//int DigitSum(int n);
//
//int main()
//{
//	int n = 0;
//	int a = 0;
//	scanf("%d", &n);
//	a = DigitSum(n);
//	printf("%d", a);
//	return 0;
//}
//
//int DigitSum(int n)
//{
//	static int i = 0;
//	if (n > 0)
//	{
//		i += n % 10;
//		DigitSum(n / 10);
//		return i;
//	}
//	else
//		return 1;
//}